// miniprogram/pages/index/index.js
const app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    logged: false,
    desc : "请先阅读",
    rules : "",
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    if (!wx.cloud) {
      wx.redirectTo({
        url: '../chooseLib/chooseLib',
      })
      return
    }

    // 获取用户信息
    wx.getSetting({
      success: res => {
        if (res.authSetting['scope.userInfo']) {
          // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
          wx.getUserInfo({
            lang: 'zh_CN',
            success: res => {
              this.storeUserInfo({
                detail: {
                  userInfo: res.userInfo
                }
              })
            }
          })
        }
      }
    })

    //获取配置信息
    const conf = wx.cloud.database().collection('JWDevice_Conf')
    conf.get("welcome_text").then(res => {
        this.setData({
          desc : res.data[0].main_desc,
          rules: this.splitRules(res.data[0].rules)
        })
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {
5
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  },
  //点击button入口函数
  allowToGo : function(e){
    if (e.detail.userInfo){
      //用户允许获取基本信息
      //将用户信息存到全局变量
      this.storeUserInfo(e);
      //云函数获取openId
      this.getOpenid();
    }else{
      //用户拒绝获取基本信息
      wx.showToast({
        title: '本程序依赖您的基本信息，请同意授权',
        icon: 'none',
        duration: 2000
      })
    }
  },

  /**
   * 缓存用户信息
   */
  storeUserInfo: function(e) {
    //console.log("storeUserInfo:" + e.detail.userInfo)
    if (!this.logged && e.detail.userInfo) {
      app.globalData.userInfo = e.detail.userInfo;
      this.setData({
        logged: true,
      })
    }
  },

/**
 * 获取用户open_id
 */
  getOpenid: function() {
    // 调用云函数
    wx.cloud.callFunction({
      name: 'login',
      data: {},
      success: res => {
        console.log('[云函数] [login] user openid: ', res.result.openid)
        app.globalData.openId = res.result.openid;
        this.naviByOpenId(res.result.openid);
      },
      fail: err => {
        console.error('[云函数] [login] 调用失败', err)
        // wx.navigateTo({
        //   url: '../deployFunctions/deployFunctions',
        // })
        wx.showToast({
          icon: 'none',
          title: '[云函数][login] 调用失败',
        })
      }
    })
  },
  /**
   * 如果用户已经选择了颜色直接跳转到结果页
   * 如果尚未选择让其选择
   */
  naviByOpenId : function(openId){
    const db = wx.cloud.database();
    db.collection('JWDevice_distribute').where({p30_choosedBy:openId}).get().then(res=>{
      if(res.data.length>0){
        wx.navigateTo({
          url: '../showResult/showResult?openId='+res.data[0].p30_choosedBy,
        })
      }else{
        wx.navigateTo({
          url: '../chooseColor/index',
        })
      }
    });
  },

  splitRules : function(rules){
    if(rules!=null && rules.length>0){
      var result = [];
      for (var i in rules) {
        var r = rules[i]
        if(typeof(r) == "string"){
          result.push({ color: 'black', content: r });
        } else if (typeof(r) == "object" && r!=null){
          result.push(r)
        }
      }
      return result;
    }
    return [];
  }
})